Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

pasek RGB + wyciąganie wartości


Rekomendowane odpowiedzi

Opublikowano

Chciałbym stworzyć pasek o wysokości 20 pikseli i szerokości 200, który by działał jak progressbar

Początek powinien być R:0 G:0 B:255, a koniec R:255 G:0 B:0, jest jakiś prosty sposób napisania tego? (ofc że się da, ale moim sposobem to zajmie 20 linijek)

 

Drugie pytanie:

 

Chciałbym wyciągnąć wartości:

A) z tego okienka:

http://screenshooter...0045994/duwfgkj (nieznana nazwa procesu, Class : Internet Explorer_Server ; SideBar_HTMLHostWindow)

B) np. o ilości maksymalnego ramu, info o procesorze

C)o ilości używanego ramu/proc przez daną aplikację

 

3, to proste pytanie, bo wiem że kiedys tak robiłem

Mianowicie nadpisywanie grafik

(grafika 20x20) dostaję wartość zwrotną =20 i nadpisuje mi się w grafice (już 20x21) (ten ostatni pasek) 20 zielonych pikseli

potem dostaję np. 15 i mam 20x22 gdzie w ostatnim pasku jest 15 zielonych pikseli (a u góry 5 czarnych)

 

Tak wiem, że to banalne, niestety nie pisałem w autoicie bardzo długi czas i połowę się zapomnialo :P

Oddajcie minusy! :(

Opublikowano

pierwsze mnie zainteresowało więc się zabawiłem.

 

GUICreate("", 300, 100)
$length = 280
$colorsPerPix = (256*6) / $length
$hSlider = GUICtrlCreateSlider(10, 10, $length, 20) ;tu koniecznie musi byc wartość taka sama jak w $length (tam możesz ją zmieniać do woli.
GUICtrlSetLimit(-1, $length-1, 0)
$hColorHex = GUICtrlCreateLabel("", 10, 40, 80, 20)
$hColor = GUICtrlCreateLabel("", 10, 70, 80, 20)
guisetstate()

Do
$colorToParse = guictrlread($hSlider) * $colorsPerPix
$colorR = int(((255 * ($colorToParse < 256)) - ((($colorToParse > 255) and ($colorToParse < 512)) * ($colorToParse-512))) + (($colorToParse > 1023) and ($colorToParse < 1280)) * ($colorToParse-1023) + ($colorToParse > 1279) * 255)
$colorG = int(((($colorToParse < 256)) * ($colorToParse)) + (($colorToParse > 255) and ($colorToParse < 768)) * (255) - ((($colorToParse > 767) and ($colorToParse < 1024)) * ($colorToParse - 1023)))
$colorB = int(((($colorToParse > 511) and ($colorToParse < 768)) * ($colorToParse - 511)) + (($colorToParse > 767)) * (255) - (($colorToParse > 1279) * ($colorToParse - 1279)))
guictrlsetdata($hColorHex, $colorR & ", " & $colorG& ", " &  $colorB )
guictrlsetbkcolor($hColor, $colorB + $colorG *256+ $colorR*256*256 ) ;jeśli będziesz zamieniał przez hex() to kejność ma być odwrotna i bez mnożenia. (i bez mnożeń)
until guigetmsg() = -3

 

@edit. UWAGA, wolniejsze (ale chuj, fajniej wygląda)

 

 

GUICreate("", 300, 100)
$length = 280
$hSlider = GUICtrlCreateSlider(10, 10, $length, 20) ;tu koniecznie musi byc wartość taka sama jak w $length (tam możesz ją zmieniać do woli.
GUICtrlSetLimit(guisetstate()-2, $length-1, 0)
while(sleep(20) and (guictrlsetbkcolor($hSlider, int(((((guictrlread($hSlider) * (256*6 / $length)) > 511) and ((guictrlread($hSlider) * (256*6 / $length)) < 768)) * ((guictrlread($hSlider) * (256*6 / $length)) - 511)) + (((guictrlread($hSlider) * (256*6 / $length)) > 767)) * (255) - (((guictrlread($hSlider) * (256*6 / $length)) > 1279) * ((guictrlread($hSlider) * (256*6 / $length)) - 1279))) + int(((((guictrlread($hSlider) * (256*6 / $length)) < 256)) * ((guictrlread($hSlider) * (256*6 / $length)))) + (((guictrlread($hSlider) * (256*6 / $length)) > 255) and ((guictrlread($hSlider) * (256*6 / $length)) < 768)) * (255) - ((((guictrlread($hSlider) * (256*6 / $length)) > 767) and ((guictrlread($hSlider) * (256*6 / $length)) < 1024)) * ((guictrlread($hSlider) * (256*6 / $length)) - 1023))) *256+ int(((255 * ((guictrlread($hSlider) * (256*6 / $length)) < 256)) - ((((guictrlread($hSlider) * (256*6 / $length)) > 255) and ((guictrlread($hSlider) * (256*6 / $length)) < 512)) * ((guictrlread($hSlider) * (256*6 / $length))-512))) + (((guictrlread($hSlider) * (256*6 / $length)) > 1023) and ((guictrlread($hSlider) * (256*6 / $length)) < 1280)) * ((guictrlread($hSlider) * (256*6 / $length))-1023) + ((guictrlread($hSlider) * (256*6 / $length)) > 1279) * 255)*256*256 ) )* GUIGetMsg() <> -3)
wend

 

 

 

@edit2. U mnie jeśli się dojedzie do końca slidera to wartość koloru niebieskiego jest o 3 lub 4 większa od zera (powino być właśnie 0). Jest to wina niedokładności slidera.

 

 

@down. Ta funkcja, którą podałeś, też musi zrobić to co ja (tylko może inaczej) + ona jeszcze niepotrzebnie uwzględni wartości S i L, bo operujemy jedynie na zmiennym H

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...